<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>OOP</title>
</head>

<body>
    <script>
        /**
         * 面相对象题
        */
        function Fn() {
            this.x = 100;
            this.y = 200;
            this.getX = function () {
                // console.log(this.x);
            };
        };
        Fn.prototype.getX = function () {
            // console.log(this.x);
        };
        Fn.prototype.getY = function () {
            // console.log(this.y);
        };
        let f1 = new Fn;
        let f2 = new Fn;
        //    console.log(f1.getX === f2.getX); // false
        //    console.log(f1.getY === f2.getY); // true
        //    console.log(f1.__proto__.getY === Fn.prototype.getY); // true
        //    console.log(f1.__proto__.getX === f2.getX); // false
        //    console.log(f1.getX === Fn.prototype.getX); // false
        //    console.log(f1.constructor); // Fn
        //    console.log(Fn.prototype.__proto__.constructor); // Object
        //    f1.getX(); // 100 ?
        //    f1.__proto__.getX(); // undefined ?
        //    f1.getY(); // 200
        //    Fn.prototype.getY(); // undefined

        var arr = [1, 2]
        function fun() {
            this.a = 0;
            this.b = function () {
                // alert(this.a)
            }
        }
        fun.prototype = {
            b: function () {
                this.a = 20;
                // alert(this.a)
            },
            c: function () {
                this.a = 30
                // alert(this.a)
            }
        }
        var my_fun = new fun()
        my_fun.b()
        my_fun.c()

        console.log('=============================');
        // Number.prototype.plus = function(num) {
        //     return this + num
        // }
        // Number.prototype.minus = function(num) {
        //     return this - num
        // }
        (function () {
            function plus(num) { 
                return this + num 
            }
            function minus(num) { 
                return this - num 
            }
            Number.prototype.plus1 = plus;
            Number.prototype.minus1 = minus;
        })()
        console.dir(Number);
        let n = 10;
        console.dir(n);
        let m = n.plus1(80).minus1(5);
        console.log(m); // 15 (10 + 10 - 5)
        // slice
    </script>   
</body>

</html>